1. Field of the Invention
The present invention relates to computer systems coupled to a network and more particularly, to a computer system which allows a network administrator to pre-set the computer system's boot sequence prior to turning the system on over the network.
2. Description of Related Art
Personal computer systems are well known in the art. Personal computer systems have attained widespread use for providing computer power to many segments of today's modern society. Personal computers can typically be defined as a desktop, floor standing, or portable microcomputer that is comprised of a system unit having a single central processing unit (CPU) and associated volatile and non-volatile memory, including random access memory (RAM) and basic input output system read only memory (BIOS ROM), a system monitor, a keyboard, one or more flexible diskette drives, a CD-ROM drive, a fixed disk storage drive (also known as a "hard drive"), a so-called "mouse" pointing device, and an optional printer. One of the distinguishing characteristics of these systems is the use of a motherboard or system planar to electrically connect these components together. Examples of such personal computer systems are IBM's PC 300 series and IBM's Aptiva Series.
It is normal to custom configure the system unit of a computer system for a user at a dealer, a corporate configuration center, or at the user site. When done at the dealer or at a configuration center the resources and skills needed are available but the computer must be removed from the packaging, set up, configured with BIOS and a program image and then repackaged to be sent to the end user. Typically large accounts roll out systems through configuration centers, which flash BIOS and download an operating system (OS) and application suite at the configuration center. There are several industry solutions to accomplish this task. IBM Corporation has delivered a product called LAN Client Control Manager (LCCM), which is remote program load (RPL) based. Intel Corporation has delivered a product LAN Control Manager (LCM) which is dynamic host configuration protocol (DHCP) based.
The LCCM is a RPL server and is a good roll out tool. In operation, the client system performs a RPL to the LCCM server. The server accepts the client and compares the client identification to a list of known clients. As long as the client is a known client, the server sends down an image to the client. The client system then runs the image which can be for example, a flash update or operating system installation.
The LCM is a DHCP server and is a good maintenance tool. In operation, the client uses DHCP to obtain an IP address from the LCM server. The LCM server displays a listing of the following options to the client: 1) boot local, 2) upgrade flash, 3) upgrade operating system and 4) run virus scan. The user on the client then selects one of these options. If a local boot is selected, the client exits DHCP mode. If any of the other image down load options is selected then the client will boot to the LCM server.
One of the first operations to be performed when a computer is turned on is to load initial programs into the main or system memory to provide the basic tools and utilities which define the operations of the computer system. Such initial programs include the BIOS, the operating system and particular applications defined by initialization control information. The initialization control information which causes an initial program load (IPL) includes Power On Self Test (POST) code, IPL control logic (often termed the boot record) and control data. The POST code can be stored in BIOS in a flash memory.
When the computer system is powered on from its power switch, the POST code is executed and the IPL can occur, for example, from a floppy diskette drive, a CD-ROM drive or the hard drive. In addition, if the computer is provided with integrated 10/100 Fast Ethernet with Alert on LAN or a suitable network adapter such as, for example, an IBM Auto Wake Token Ring PCI adapter with Alert on LAN and is connected to a computer network such as, for example, a local area network (LAN), there can be another potential source for the IPL operation. Namely, the IPL can occur from a remote storage location in a LAN server computer system (often called a remote IPL or RPL). Alternatively, the computer coupled to a network can use dynamic host configuration protocol (DHCP) as a remote source for the IPL operation. If RPL is used, the application of choice is a RPL server or LCCM. On the other hand, if DHCP is used, the application of choice is LCM or a Windows NT server.
Using the computer's ROM setup utility, a user can manually select whether to IPL using RPL or DHCP. Computer systems should have the flexibility to support both the RPL and the DHCP environment. However, the systems need to be set to the proper environment prior to attempting to manage the system. This results in a manual operation of changing a BIOS setting to RPL or DHCP. The BIOS setting can be changed manually by, for example, opening a BIOS setup menu for "boot sequence", selecting "Ethernet" and then selecting boot type (RPL, DHCP or none). Similarly, for adapter cards the boot sequence can be chosen manually by opening a "boot sequence" menu and selecting the boot type.
A conventional solution is to use an algorithm to have the system auto detect on the first power cycle whether to RPL or DHCP. The algorithm first attempts a DHCP boot and if successful sets the default to DHCP. If no contact is made to a DHCP server within a predetermined period of time, then the algorithm will set the default to RPL and attempt an RPL boot. However, this solution has several limitations. In environments with both RPL and DHCP servers, the algorithm will select DHCP. In addition, this solution is an awkward method to alternate between RPL and DHCP as it requires LCCM (RPL based) to change CMOS to setup to DHCP or LCM (DHCP based) to change CMOS to setup RPL.
It is therefore desirable to provide a computer system coupled to a network that allows a network administrator to set the system's boot sequence over the network prior to turning the system on over the network and performing a remote program load.